import { createApp } from 'vue'
import mitt from 'mitt'

import App from './App.vue'

import './assets/style/style.less'
// 修复：vant 是按需引入的，但是dialog，toast并没有样式，需要全局引入来解决该问题
import 'vant/es/dialog/style'
import 'vant/es/toast/style'
// 注册svg脚本
import 'virtual:svg-icons-register'
// 全局引入 svg 组件
import SvgIcon from '@/components/SvgIcon/index.vue'

// 引入 router
import router from './router/index'
import store from './store/index'

// vconsole
import Vconsole from 'vconsole'

new Vconsole()

const app = createApp(App)
// mitt
const Mit = mitt()
// TypeScript注册
// 由于必须要拓展ComponentCustomProperties类型才能获得类型提示
declare module 'vue' {
  export interface ComponentCustomProperties {
    $Bus: typeof Mit
  }
}
app.config.globalProperties.$Bus = Mit

// 全局挂在 svg 组件
app.component('SvgIcon', SvgIcon)
app.use(store)
app.use(router)

app.mount('#app')
